package com.liuqi.openai.chain;

import com.liuqi.openai.chain.result.Content;
import com.liuqi.openai.chain.result.Function;
import com.liuqi.openai.chain.result.Think;

/**
 * 对话链的流式响应处理器
 *
 * @author liuqi
 * @date 2025/7/20
 **/
public interface ChainStreamingHandler {

    /**
     * 内容
     *
     * @param content
     */
    default void onContent(Content content) {}

    /**
     * 思考内容
     *
     * @param think
     */
    default void onThink(Think think) { }

    /**
     * 工具调用
     *
     * @param function  tool_call json string
     */
    default void onToolCall(Function function) { }

    /**
     * 对话完成
     */
    default void onComplete() {}

    /**
     * 异常
     *
     * @param error
     */
    default void onError(Throwable error) { }

}
